package com.ruoyi.mapper.production;

import com.ruoyi.domain.production.MesProductionPlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 生产计划Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface MesProductionPlanMapper {
    /**
     * 查询生产计划
     * 
     * @param planId 生产计划主键
     * @return 生产计划
     */
    public MesProductionPlan selectMesProductionPlanByPlanId(Long planId);

    /**
     * 查询生产计划列表
     * 
     * @param mesProductionPlan 生产计划
     * @return 生产计划集合
     */
    public List<MesProductionPlan> selectMesProductionPlanList(MesProductionPlan mesProductionPlan);

    /**
     * 校验计划编号是否唯一
     * 
     * @param planCode 计划编号
     * @param planId 计划ID（修改时排除自身）
     * @return 生产计划信息
     */
    MesProductionPlan checkPlanCodeUnique(@Param("planCode") String planCode, @Param("planId") Long planId);

    /**
     * 新增生产计划
     * 
     * @param mesProductionPlan 生产计划
     * @return 结果
     */
    public int insertMesProductionPlan(MesProductionPlan mesProductionPlan);

    /**
     * 修改生产计划
     * 
     * @param mesProductionPlan 生产计划
     * @return 结果
     */
    public int updateMesProductionPlan(MesProductionPlan mesProductionPlan);

    /**
     * 删除生产计划
     * 
     * @param planId 生产计划主键
     * @return 结果
     */
    public int deleteMesProductionPlanByPlanId(Long planId);

    /**
     * 批量删除生产计划
     * 
     * @param planIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesProductionPlanByPlanIds(Long[] planIds);
}